#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int N=100005;
int t,m,n;
int a[N];
int mod[5005];
int pre;
int main(void){
    scanf("%d",&t);
    while(t--){
        memset(mod,0,sizeof(mod));
        scanf("%d%d",&n,&m);
        pre=0;
        for(int i=0;i<n;i++){
            scanf("%d",&a[i]);
            pre=(pre+a[i])%m;
            mod[pre]++;
        }
        if(mod[0]){
            printf("YES\n");
        }
        else{
            int i=1;
            for(;i<m;i++){
                if(mod[i]>1){
                    printf("YES\n");
                    break;
                }
            }
            if(i==m){
                printf("NO\n");
            }
        }
        //不能用尺取法 如果是求某个区间和等于m即可以
        //比如3 1 4 8这个0到2这个区间模7不满足 但是不能去掉第一个数3
        // int l=0;
        // int r=0;
        // int t=a[0];
        // bool flag=false;
        // while(r<n){
        //     printf("%d %d %d\n",l,r,t);
        //     if(!(t%m)){
        //         flag=true;
        //         break;
        //     }
        //     else{
        //         if(t>m){
        //             l++;
        //             r++;
        //             t+=a[r];
        //             t-=a[l-1];
        //         }
        //         else{
        //             r++;
        //             t+=a[r];
        //         }
        //     }
        // }
        // if(flag){
        //     printf("YES\n");
        // }
        // else{
        //     printf("NO\n");
        // }
    }
    return 0;
}